package club.util;

import java.util.HashMap;
import java.util.Map;


public class Message {

    private int code; // 状态码

    private String message; // 消息内容

    private Map<String, Object> extend = new HashMap<String, Object>(); // 扩展信息，使用 Map 存储

    // 静态工厂方法：创建一个表示处理成功的 Message 对象
    public static Message success(){
        Message result = new Message(); // 创建 Message 对象
        result.setCode(100); // 设置状态码为 100
        result.setMessage("处理成功！"); // 设置消息内容为 "处理成功！"
        return result; // 返回创建的 Message 对象
    }

    // 静态工厂方法：创建一个表示处理失败的 Message 对象
    public static Message fail(){
        Message result = new Message(); // 创建 Message 对象
        result.setCode(200); // 设置状态码为 200
        result.setMessage("处理失败！"); // 设置消息内容为 "处理失败！"
        return result; // 返回创建的 Message 对象
    }

    // 方法：向扩展信息中添加键值对
    public Message add(String key, Object value){
        this.getExtend().put(key, value); // 将键值对放入扩展信息的 Map 中
        return this; // 返回当前 Message 对象，支持链式调用
    }

    // Getter 和 Setter 方法
    public int getCode() {
        return code; // 获取状态码
    }

    public void setCode(int code) {
        this.code = code; // 设置状态码
    }

    public String getMessage() {
        return message; // 获取消息内容
    }

    public void setMessage(String message) {
        this.message = message; // 设置消息内容
    }

    public Map<String, Object> getExtend() {
        return extend; // 获取扩展信息的 Map
    }

    public void setExtend(Map<String, Object> extend) {
        this.extend = extend; // 设置扩展信息的 Map
    }
}
